# import qrcode
# import pandas
#
# data = "https://pintia.cn/problem-sets/dashboard"
#
# img = qrcode.make(data)
#
# img.save("D:\\图片Python\\PTA.png")

# !/usr/bin/python3
# -*- coding: utf-8 -*-


# import pyttsx3
#
# engine = pyttsx3.init()
#
# engine.say("我爱你")
#
# engine.runAndWait()

# from cowpy import cow
#
# cheese = cow.Moose()
#
# msg = cheese.milk("ooo")
#
# print(msg)


# import csv
# # 用写入模式创建一个新的CSV文件，newline=''可以避免空行
# with open('D:\\python--csv\\回复数据.csv', 'w', newline='') as f:
#     # 创建一个csv.writer对象，指定分隔符为逗号
#     writer = csv.writer(f, delimiter=',')
#     # 写入一些数据，每个元素是一个列表，表示一行数据
#     writer.writerow(['name', 'age', 'gender'])
#     writer.writerow(['Alice', '25', 'F'])
#     writer.writerow(['Bob', '30', 'M'])


# import csv
# # 用写入模式创建一个新的CSV文件，newline=''可以避免空行
# with open('D:\\python--csv\\回复数据.csv', 'w', newline='') as f:
#     # 创建一个csv.writer对象，指定分隔符为逗号
#     writer = csv.writer(f, delimiter=',')
#     # 写入一些数据，每个元素是一个列表，表示一行数据
#     writer.writerow(['序号', '关键词', '回复内容'])
#     writer.writerow(['1', '你好', '你好'])
#     writer.writerow(['2', '哈哈哈', '哈哈哈'])
#     writer.writerow(['3', '拜拜', '拜拜'])
#     writer.writerow(['4', '你在干嘛', '我在想你'])
#     writer.writerow(['5', '吃饭没', '还没有，你呢？'])


# !/usr/bin/python3
# -*- coding: utf-8 -*-


import numpy as np  # 引入numpy库，目的是将读取的数据转换为列表
import pandas as pd  # 引入pandas库，用来读取csv数据
from uiautomation import WindowControl  # 引入uiautomation库中的WindowControl类，用来进行图像识别和模拟操作

# 绑定微信主窗口
wx = WindowControl(
    Name='微信',
    searchDepth=1
)
# 切换窗口
wx.ListControl()
wx.SwitchToThisWindow()
# 寻找会话控件绑定
hw = wx.ListControl(Name='会话')
# 通过pd读取数据
df = pd.read_csv('D:\\python文件\\回复数据.csv', encoding='GBK')
print(df)
# 死循环接收消息
while True:
    # 从查找未读消息
    we = hw.TextControl(searchDepth=4)

    # 死循环维持，没有超时报错
    while not we.Exists():
        pass

    # 存在未读消息
    if we.Name:
        # 点击未读消息
        we.Click(simulateMove=False)
        # 读取最后一条消息
        last_msg = wx.ListControl(Name='消息').GetChildren()[-1].Name
        # 判断关键字
        msg = df.apply(lambda x: x['回复内容'] if x['关键词'] in last_msg else None, axis=1)
        print(msg)
        # 数据筛选，移除空数据
        msg.dropna(axis=0, how='any', inplace=True)
        # 做成列表
        ar = np.array(msg).tolist()
        # 能够匹配到数据时
        if ar:
            # 将数据输入
            # 替换换行符号
            wx.SendKeys(ar[0].replace('{br}', '{Shift}{Enter}'), waitTime=1)
            # 发送消息 回车键
            wx.SendKeys('{Enter}', waitTime=1)

            # 通过消息匹配检索会话栏的联系人
            wx.TextControl(SubName=ar[0][:5]).RightClick()
        # 没有匹配到数据时
        else:
            wx.SendKeys('我不理解你什么意思', waitTime=1)
            wx.SendKeys('{Enter}', waitTime=1)
            wx.TextControl(SubName=last_msg[:5]).RightClick()